#include <iostream>
#include <vector>
#include <string.h>

using namespace std;

class demo {

public:
    demo(int num):m_num(num) {
    }

    // 所谓引用限定符，就是在成员函数的后面添加 "&" 或者 "&&"，从而限制调用者的类型（左值还是右值）
    int get_num()& {
        return this->m_num;
    }

    int get_num2()&& {
        return this->m_num + 1;
    }

private:
    int m_num;

};
int main() {
    int *a = nullptr;
    nullptr_t ptr = nullptr;
    demo a(10);
    cout << a.get_num() << endl;        // 正确
    // cout << move(a).get_num() << endl;  // 错误

    // cout << a.get_num2() << endl;        // 错误
    cout << move(a).get_num2() << endl;  // 正确
    return 0;
}